/*
 *   Copyright (c) 2022 Project CHIP Authors
 *   All rights reserved.
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 */
package chip.devicecontroller;

import chip.devicecontroller.model.ChipAttributePath;
import chip.devicecontroller.model.ChipEventPath;
import chip.devicecontroller.model.NodeState;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;

/** An interface for receiving read/subscribe CHIP reports. */
public interface ReportCallback {
  void onError(
      @Nullable ChipAttributePath attributePath,
      @Nullable ChipEventPath eventPath,
      @Nonnull Exception e);

  void onReport(NodeState nodeState);

  default void onDone() {}
}
